[INFO] cloning repository https://github.com/schani/git-lineage
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/schani/git-lineage" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fschani%2Fgit-lineage", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fschani%2Fgit-lineage'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 819c41ec0211d2504c500b9de03187bf5fbee003
[INFO] testing schani/git-lineage against try#b8e88e5ddf5521a9f43ee3f62a702388c713e4bb for pr-155114
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fschani%2Fgit-lineage" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/schani/git-lineage
[INFO] finished tweaking git repo https://github.com/schani/git-lineage
[INFO] tweaked toml for git repo https://github.com/schani/git-lineage written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/schani/git-lineage on toolchain b8e88e5ddf5521a9f43ee3f62a702388c713e4bb
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b8e88e5ddf5521a9f43ee3f62a702388c713e4bb" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/schani/git-lineage already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b8e88e5ddf5521a9f43ee3f62a702388c713e4bb" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+b8e88e5ddf5521a9f43ee3f62a702388c713e4bb" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 69825efca00d63c805a051c605331287916ae1c7c0dd5c2ec492a18b05c07892
[INFO] running `Command { std: "docker" "start" "-a" "69825efca00d63c805a051c605331287916ae1c7c0dd5c2ec492a18b05c07892", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "69825efca00d63c805a051c605331287916ae1c7c0dd5c2ec492a18b05c07892", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "69825efca00d63c805a051c605331287916ae1c7c0dd5c2ec492a18b05c07892", kill_on_drop: false }`
[INFO] [stdout] 69825efca00d63c805a051c605331287916ae1c7c0dd5c2ec492a18b05c07892
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+b8e88e5ddf5521a9f43ee3f62a702388c713e4bb" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 30bde50580aa8979c572b442e019561133ae2c05c49f5dabd30679b34f3fbb79
[INFO] running `Command { std: "docker" "start" "-a" "30bde50580aa8979c572b442e019561133ae2c05c49f5dabd30679b34f3fbb79", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.104
[INFO] [stderr]    Compiling libc v0.2.174
[INFO] [stderr]    Compiling memchr v2.7.5
[INFO] [stderr]    Compiling cfg-if v1.0.1
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling thiserror v2.0.12
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]    Compiling log v0.4.27
[INFO] [stderr]    Compiling lock_api v0.4.13
[INFO] [stderr]    Compiling gix-trace v0.1.12
[INFO] [stderr]    Compiling home v0.5.11
[INFO] [stderr]    Compiling zlib-rs v0.5.1
[INFO] [stderr]    Compiling tinyvec v1.9.0
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling bitflags v2.9.1
[INFO] [stderr]    Compiling crc32fast v1.4.2
[INFO] [stderr]    Compiling bytesize v2.0.1
[INFO] [stderr]    Compiling human_format v1.1.0
[INFO] [stderr]    Compiling crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling allocator-api2 v0.2.21
[INFO] [stderr]    Compiling heapless v0.8.0
[INFO] [stderr]    Compiling hash32 v0.3.1
[INFO] [stderr]    Compiling zerocopy v0.8.26
[INFO] [stderr]    Compiling crypto-common v0.1.6
[INFO] [stderr]    Compiling jiff v0.2.15
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling rustix v1.0.7
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling linux-raw-sys v0.9.4
[INFO] [stderr]    Compiling sha1-checked v0.10.0
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling unicode-bom v2.0.3
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling winnow v0.7.11
[INFO] [stderr]    Compiling unicode-normalization v0.1.24
[INFO] [stderr]    Compiling kstring v2.0.2
[INFO] [stderr]    Compiling shell-words v1.1.0
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling rustversion v1.0.21
[INFO] [stderr]    Compiling form_urlencoded v1.2.1
[INFO] [stderr]    Compiling encoding_rs v0.8.35
[INFO] [stderr]    Compiling hashbrown v0.15.4
[INFO] [stderr]    Compiling cc v1.2.27
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling deranged v0.4.0
[INFO] [stderr]    Compiling uluru v3.1.0
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling memmap2 v0.9.5
[INFO] [stderr]    Compiling signal-hook-registry v1.4.5
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]    Compiling gix-sec v0.11.0
[INFO] [stderr]    Compiling parking_lot v0.12.4
[INFO] [stderr]    Compiling tempfile v3.20.0
[INFO] [stderr]    Compiling filetime v0.2.25
[INFO] [stderr]    Compiling mio v1.0.4
[INFO] [stderr]    Compiling onig_sys v69.9.1
[INFO] [stderr]    Compiling castaway v0.2.3
[INFO] [stderr]    Compiling prodash v29.0.2
[INFO] [stderr]    Compiling imara-diff v0.1.8
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling signal-hook-mio v0.2.4
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling clru v0.6.2
[INFO] [stderr]    Compiling indoc v2.0.6
[INFO] [stderr]    Compiling unicode-width v0.1.14
[INFO] [stderr]    Compiling time-core v0.1.4
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling unicode-segmentation v1.12.0
[INFO] [stderr]    Compiling anstyle v1.0.11
[INFO] [stderr]    Compiling anstyle-query v1.1.3
[INFO] [stderr]    Compiling time v0.3.41
[INFO] [stderr]    Compiling crossterm v0.28.1
[INFO] [stderr]    Compiling anstream v0.6.19
[INFO] [stderr]    Compiling compact_str v0.8.1
[INFO] [stderr]    Compiling lru v0.12.5
[INFO] [stderr]    Compiling indexmap v2.10.0
[INFO] [stderr]    Compiling socket2 v0.5.10
[INFO] [stderr]    Compiling unicode-truncate v1.1.0
[INFO] [stderr]    Compiling io-close v0.3.7
[INFO] [stderr]    Compiling quick-xml v0.37.5
[INFO] [stderr]    Compiling linked-hash-map v0.5.6
[INFO] [stderr]    Compiling clap_lex v0.7.5
[INFO] [stderr]    Compiling arc-swap v1.7.1
[INFO] [stderr]    Compiling dashmap v6.1.0
[INFO] [stderr]    Compiling yaml-rust v0.4.5
[INFO] [stderr]    Compiling is-terminal v0.4.16
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling clap_builder v4.5.40
[INFO] [stderr]    Compiling humantime v2.2.0
[INFO] [stderr]    Compiling termcolor v1.4.1
[INFO] [stderr]    Compiling iana-time-zone v0.1.63
[INFO] [stderr]    Compiling fuzzy-matcher v0.3.7
[INFO] [stderr]    Compiling similar v2.7.0
[INFO] [stderr]    Compiling chrono v0.4.41
[INFO] [stderr]    Compiling bstr v1.12.0
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]    Compiling libz-rs-sys v0.5.1
[INFO] [stderr]    Compiling flate2 v1.1.2
[INFO] [stderr]    Compiling gix-utils v0.3.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling globset v0.4.16
[INFO] [stderr]    Compiling env_logger v0.10.2
[INFO] [stderr]    Compiling ignore v0.4.23
[INFO] [stderr]    Compiling thiserror-impl v2.0.12
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling zerovec-derive v0.11.1
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling maybe-async v0.2.10
[INFO] [stderr]    Compiling onig v6.5.1
[INFO] [stderr]    Compiling clap_derive v4.5.40
[INFO] [stderr]    Compiling tokio v1.45.1
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling gix-validate v0.10.0
[INFO] [stderr]    Compiling gix-date v0.10.2
[INFO] [stderr]    Compiling yoke v0.8.0
[INFO] [stderr]    Compiling gix-quote v0.6.0
[INFO] [stderr]    Compiling gix-chunk v0.4.11
[INFO] [stderr]    Compiling gix-bitmap v0.2.14
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]    Compiling clap v4.5.40
[INFO] [stderr]    Compiling strum v0.26.3
[INFO] [stderr]    Compiling gix-path v0.10.18
[INFO] [stderr]    Compiling zerovec v0.11.2
[INFO] [stderr]    Compiling zerotrie v0.2.2
[INFO] [stderr]    Compiling gix-actor v0.35.1
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]    Compiling instability v0.3.7
[INFO] [stderr]    Compiling gix-mailmap v0.27.1
[INFO] [stderr]    Compiling gix-features v0.42.1
[INFO] [stderr]    Compiling gix-command v0.6.1
[INFO] [stderr]    Compiling gix-config-value v0.15.0
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling gix-fs v0.15.0
[INFO] [stderr]    Compiling gix-glob v0.20.1
[INFO] [stderr]    Compiling gix-attributes v0.26.1
[INFO] [stderr]    Compiling gix-ignore v0.15.0
[INFO] [stderr]    Compiling ratatui v0.28.1
[INFO] [stderr]    Compiling gix-prompt v0.11.0
[INFO] [stderr]    Compiling gix-pathspec v0.11.0
[INFO] [stderr]    Compiling gix-tempfile v17.1.0
[INFO] [stderr]    Compiling gix-lock v17.1.0
[INFO] [stderr]    Compiling tinystr v0.8.1
[INFO] [stderr]    Compiling potential_utf v0.1.2
[INFO] [stderr]    Compiling icu_locale_core v2.0.0
[INFO] [stderr]    Compiling icu_collections v2.0.0
[INFO] [stderr]    Compiling icu_provider v2.0.0
[INFO] [stderr]    Compiling icu_normalizer v2.0.0
[INFO] [stderr]    Compiling icu_properties v2.0.1
[INFO] [stderr]    Compiling tui-tree-widget v0.22.0
[INFO] [stderr]    Compiling tokio-util v0.7.15
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.0.3
[INFO] [stderr]    Compiling faster-hex v0.10.0
[INFO] [stderr]    Compiling plist v1.7.2
[INFO] [stderr]    Compiling bincode v1.3.3
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]    Compiling gix-hash v0.18.0
[INFO] [stderr]    Compiling gix-packetline-blocking v0.19.0
[INFO] [stderr]    Compiling gix-packetline v0.19.0
[INFO] [stderr]    Compiling url v2.5.4
[INFO] [stderr]    Compiling gix-hashtable v0.8.1
[INFO] [stderr]    Compiling gix-commitgraph v0.28.0
[INFO] [stderr]    Compiling gix-shallow v0.4.0
[INFO] [stderr]    Compiling gix-url v0.31.0
[INFO] [stderr]    Compiling gix-object v0.49.1
[INFO] [stderr]    Compiling gix-transport v0.47.0
[INFO] [stderr]    Compiling gix-credentials v0.29.0
[INFO] [stderr]    Compiling syntect v5.2.0
[INFO] [stderr]    Compiling gix-revwalk v0.20.1
[INFO] [stderr]    Compiling gix-ref v0.52.1
[INFO] [stderr]    Compiling gix-filter v0.19.2
[INFO] [stderr]    Compiling gix-pack v0.59.1
[INFO] [stderr]    Compiling gix-traverse v0.46.2
[INFO] [stderr]    Compiling gix-revision v0.34.1
[INFO] [stderr]    Compiling gix-negotiate v0.20.1
[INFO] [stderr]    Compiling gix-index v0.40.1
[INFO] [stderr]    Compiling gix-worktree-stream v0.21.2
[INFO] [stderr]    Compiling gix-odb v0.69.1
[INFO] [stderr]    Compiling gix-archive v0.21.2
[INFO] [stderr]    Compiling gix-refspec v0.30.1
[INFO] [stderr]    Compiling gix-discover v0.40.1
[INFO] [stderr]    Compiling gix-config v0.45.1
[INFO] [stderr]    Compiling gix-protocol v0.50.1
[INFO] [stderr]    Compiling gix-worktree v0.41.0
[INFO] [stderr]    Compiling gix-diff v0.52.1
[INFO] [stderr]    Compiling gix-dir v0.14.1
[INFO] [stderr]    Compiling gix-worktree-state v0.19.0
[INFO] [stderr]    Compiling gix-submodule v0.19.1
[INFO] [stderr]    Compiling gix-status v0.19.1
[INFO] [stderr]    Compiling gix v0.72.1
[INFO] [stderr]    Compiling git-lineage v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `cancellation_token_for_callback`
[INFO] [stdout]    --> src/async_task.rs:333:13
[INFO] [stdout]     |
[INFO] [stdout] 333 |         let cancellation_token_for_callback = cancellation_token.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cancellation_token_for_callback`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cancellation_token_for_callback`
[INFO] [stdout]    --> src/async_task.rs:333:13
[INFO] [stdout]     |
[INFO] [stdout] 333 |         let cancellation_token_for_callback = cancellation_token.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cancellation_token_for_callback`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Modified` is never constructed
[INFO] [stdout]   --> src/app.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub enum DiffLineType {
[INFO] [stdout]    |          ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 42 |     Modified,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DiffLineType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `current_blame` is never read
[INFO] [stdout]   --> src/app.rs:57:9
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub struct InspectorState {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 56 |     pub current_content: Vec<String>,
[INFO] [stdout] 57 |     pub current_blame: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `InspectorState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/app.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout]  94 | impl App {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn navigate_tree_up(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn navigate_tree_down(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn expand_selected_node(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn collapse_selected_node(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn toggle_selected_node(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn get_selected_file_path(&self) -> Option<PathBuf> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     pub fn get_navigator_search_query(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub fn is_navigator_searching(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     pub fn load_inspector_content(&mut self) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn set_selected_commit(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 282 |     pub fn load_commit_history_for_selected_file(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `LoadCommitHistory` is never constructed
[INFO] [stdout]  --> src/async_task.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub enum Task {
[INFO] [stdout]   |          ---- variant in this enum
[INFO] [stdout] 7 |     LoadFileTree,
[INFO] [stdout] 8 |     LoadCommitHistory {
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Task` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_string` is never used
[INFO] [stdout]    --> src/command.rs:122:12
[INFO] [stdout]     |
[INFO] [stdout]  46 | impl Command {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub fn to_string(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_blame_at_commit` is never used
[INFO] [stdout]    --> src/git_utils.rs:423:8
[INFO] [stdout]     |
[INFO] [stdout] 423 | pub fn get_blame_at_commit(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_file_content_at_head` is never used
[INFO] [stdout]    --> src/git_utils.rs:467:8
[INFO] [stdout]     |
[INFO] [stdout] 467 | pub fn get_file_content_at_head(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_next_change_for_line` is never used
[INFO] [stdout]    --> src/git_utils.rs:530:8
[INFO] [stdout]     |
[INFO] [stdout] 530 | pub fn find_next_change_for_line(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_buffer`, `contains_text`, `get_cursor`, and `resize` are never used
[INFO] [stdout]   --> src/headless_backend.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl HeadlessBackend {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn get_buffer(&self) -> &Buffer {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn contains_text(&self, text: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn get_cursor(&self) -> (Option<(u16, u16)>, bool) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn resize(&mut self, width: u16, height: u16) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `reverse_map_line`, `find_nearest_mapped_line`, and `find_nearest_mapped_line_with_content_fallback` are never used
[INFO] [stdout]    --> src/line_mapping.rs:54:12
[INFO] [stdout]     |
[INFO] [stdout]  24 | impl LineMapping {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  54 |     pub fn reverse_map_line(&self, new_line: usize) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     pub fn find_nearest_mapped_line(&self, old_line: usize, search_radius: usize) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn find_nearest_mapped_line_with_content_fallback(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Git` is never constructed
[INFO] [stdout]    --> src/line_mapping.rs:306:5
[INFO] [stdout]     |
[INFO] [stdout] 304 | pub enum LineMappingError {
[INFO] [stdout]     |          ---------------- variant in this enum
[INFO] [stdout] 305 |     #[error("Git error: {0}")]
[INFO] [stdout] 306 |     Git(String),
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LineMappingError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `SelectFile` is never constructed
[INFO] [stdout]   --> src/navigator.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum NavigatorEvent {
[INFO] [stdout]    |          -------------- variant in this enum
[INFO] [stdout] 13 |     SelectFile(PathBuf),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NavigatorEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `scroll_offset` is never read
[INFO] [stdout]   --> src/navigator.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct NavigatorViewModel {
[INFO] [stdout]    |            ------------------ field in this struct
[INFO] [stdout] 41 |     pub items: Vec<VisibleItem>,
[INFO] [stdout] 42 |     pub scroll_offset: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NavigatorViewModel` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_view_model_dirty` is never used
[INFO] [stdout]    --> src/navigator.rs:354:12
[INFO] [stdout]     |
[INFO] [stdout]  68 | impl NavigatorState {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 354 |     pub fn is_view_model_dirty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `save_to_file` is never used
[INFO] [stdout]    --> src/test_config.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout] 102 | impl TestConfig {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn save_to_file(&self, path: &str) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/test_runner.rs:607:12
[INFO] [stdout]     |
[INFO] [stdout] 606 | impl TestRunner {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] 607 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `search_text` and `text_default` are never read
[INFO] [stdout]   --> src/theme.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct Theme {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub search_text: Color,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub text_default: Color,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Theme` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/tree.rs:63:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl TreeNode {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  63 |     pub fn remove_child(&mut self, path: &Path) -> Option<TreeNode> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  72 |     pub fn find_child(&self, path: &Path) -> Option<&TreeNode> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  77 |     pub fn find_child_mut(&mut self, path: &Path) -> Option<&mut TreeNode> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub fn collapse(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn toggle_expansion(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn has_children(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn depth(&self) -> usize {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tree.rs:333:12
[INFO] [stdout]     |
[INFO] [stdout] 148 | impl FileTree {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 333 |     pub fn set_git_status(&mut self, status_map: HashMap<PathBuf, char>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 339 |     fn apply_git_status_to_tree(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 347 |     fn apply_git_status_to_node_static(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 371 |     pub fn find_node_mut(&mut self, path: &Path) -> Option<&mut TreeNode> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 396 |     fn find_node_recursive_mut_static<'a>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 414 |     pub fn expand_node(&mut self, path: &Path) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 425 |     pub fn collapse_node(&mut self, path: &Path) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 436 |     pub fn toggle_node(&mut self, path: &Path) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 447 |     pub fn get_visible_nodes(&self) -> Vec<&TreeNode> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 456 |     pub fn get_visible_nodes_with_depth(&self) -> Vec<(&TreeNode, usize)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 465 |     fn collect_visible_nodes<'a>(&self, node: &'a TreeNode, visible: &mut Vec<&'a TreeNode>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 476 |     fn collect_visible_nodes_with_depth<'a>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 492 |     pub fn get_stats(&self) -> TreeStats {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 501 |     fn collect_stats(&self, node: &TreeNode, stats: &mut TreeStats) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TreeStats` is never constructed
[INFO] [stdout]    --> src/tree.rs:526:12
[INFO] [stdout]     |
[INFO] [stdout] 526 | pub struct TreeStats {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 24s
[INFO] running `Command { std: "docker" "inspect" "30bde50580aa8979c572b442e019561133ae2c05c49f5dabd30679b34f3fbb79", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "30bde50580aa8979c572b442e019561133ae2c05c49f5dabd30679b34f3fbb79", kill_on_drop: false }`
[INFO] [stdout] 30bde50580aa8979c572b442e019561133ae2c05c49f5dabd30679b34f3fbb79
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+b8e88e5ddf5521a9f43ee3f62a702388c713e4bb" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9f868afa0d757e7d95b57cbcbac238183f2168a52e181d88af47f59dff370b69
[INFO] running `Command { std: "docker" "start" "-a" "9f868afa0d757e7d95b57cbcbac238183f2168a52e181d88af47f59dff370b69", kill_on_drop: false }`
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling tokio v1.45.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling slab v0.4.10
[INFO] [stderr]    Compiling predicates-core v1.0.9
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling termtree v0.5.1
[INFO] [stderr]    Compiling quick-error v1.2.3
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling sdd v3.0.8
[INFO] [stderr]    Compiling serial_test_derive v3.2.0
[INFO] [stderr]    Compiling mockall_derive v0.12.1
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling predicates v3.1.3
[INFO] [stderr]    Compiling predicates-tree v1.0.12
[INFO] [stderr]    Compiling fragile v2.0.1
[INFO] [stderr]    Compiling downcast v0.11.0
[INFO] [stderr]    Compiling deunicode v1.6.2
[INFO] [stderr]    Compiling tempfile v3.20.0
[INFO] [stderr]    Compiling rand_core v0.9.3
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling async-stream v0.3.6
[INFO] [stderr]    Compiling scc v2.3.4
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling unarray v0.1.4
[INFO] [stderr]    Compiling maplit v1.0.2
[INFO] [stderr]    Compiling assert_matches v1.5.0
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling gix-tempfile v17.1.0
[INFO] [stderr]    Compiling gix-odb v0.69.1
[INFO] [stderr]    Compiling rusty-fork v0.3.0
[INFO] [stderr]    Compiling gix-lock v17.1.0
[INFO] [stderr]    Compiling fake v2.10.0
[INFO] [stderr]    Compiling chrono v0.4.41
[INFO] [stderr]    Compiling gix-ref v0.52.1
[INFO] [stderr]    Compiling gix-index v0.40.1
[INFO] [stderr]    Compiling gix-shallow v0.4.0
[INFO] [stderr]    Compiling proptest v1.7.0
[INFO] [stderr]    Compiling gix-discover v0.40.1
[INFO] [stderr]    Compiling gix-config v0.45.1
[INFO] [stderr]    Compiling gix-protocol v0.50.1
[INFO] [stderr]    Compiling mockall v0.12.1
[INFO] [stderr]    Compiling gix-worktree v0.41.0
[INFO] [stderr]    Compiling gix-dir v0.14.1
[INFO] [stderr]    Compiling gix-diff v0.52.1
[INFO] [stderr]    Compiling gix-worktree-state v0.19.0
[INFO] [stderr]    Compiling gix-submodule v0.19.1
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling gix-status v0.19.1
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling serial_test v3.2.0
[INFO] [stderr]    Compiling gix v0.72.1
[INFO] [stderr]    Compiling tokio-util v0.7.15
[INFO] [stderr]    Compiling tokio-stream v0.1.17
[INFO] [stderr]    Compiling tokio-test v0.4.4
[INFO] [stderr]    Compiling git-lineage v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `cancellation_token_for_callback`
[INFO] [stdout]    --> src/async_task.rs:333:13
[INFO] [stdout]     |
[INFO] [stdout] 333 |         let cancellation_token_for_callback = cancellation_token.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cancellation_token_for_callback`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `temp_dir`
[INFO] [stdout]    --> tests/main_tests.rs:801:13
[INFO] [stdout]     |
[INFO] [stdout] 801 |         let temp_dir = TempDir::new().unwrap();
[INFO] [stdout]     |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_temp_dir`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/main_tests.rs:264:9
[INFO] [stdout]     |
[INFO] [stdout] 264 | /         app.navigator.handle_event(git_lineage::navigator::NavigatorEvent::SelectFile(
[INFO] [stdout] 265 | |             std::path::PathBuf::from("test_file.rs")
[INFO] [stdout] 266 | |         ));
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 264 |         let _ = app.navigator.handle_event(git_lineage::navigator::NavigatorEvent::SelectFile(
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/main_tests.rs:308:9
[INFO] [stdout]     |
[INFO] [stdout] 308 | /         app.navigator.handle_event(git_lineage::navigator::NavigatorEvent::SelectFile(
[INFO] [stdout] 309 | |             std::path::PathBuf::from("empty_file.rs")
[INFO] [stdout] 310 | |         ));
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 308 |         let _ = app.navigator.handle_event(git_lineage::navigator::NavigatorEvent::SelectFile(
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/main_tests.rs:361:9
[INFO] [stdout]     |
[INFO] [stdout] 361 | /         app.navigator.handle_event(git_lineage::navigator::NavigatorEvent::SelectFile(
[INFO] [stdout] 362 | |             std::path::PathBuf::from("current_file.rs")
[INFO] [stdout] 363 | |         ));
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 361 |         let _ = app.navigator.handle_event(git_lineage::navigator::NavigatorEvent::SelectFile(
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]     --> src/app.rs:1011:13
[INFO] [stdout]      |
[INFO] [stdout] 1011 |         use super::*;
[INFO] [stdout]      |             ^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]    --> src/async_task.rs:520:9
[INFO] [stdout]     |
[INFO] [stdout] 520 |     use std::path::PathBuf;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]     --> src/app.rs:1011:13
[INFO] [stdout]      |
[INFO] [stdout] 1011 |         use super::*;
[INFO] [stdout]      |             ^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]    --> src/async_task.rs:520:9
[INFO] [stdout]     |
[INFO] [stdout] 520 |     use std::path::PathBuf;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cancellation_token_for_callback`
[INFO] [stdout]    --> src/async_task.rs:333:13
[INFO] [stdout]     |
[INFO] [stdout] 333 |         let cancellation_token_for_callback = cancellation_token.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cancellation_token_for_callback`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ratatui::Frame::<'_>::size`: use .area() as it's the more correct name
[INFO] [stdout]    --> src/headless_backend.rs:227:38
[INFO] [stdout]     |
[INFO] [stdout] 227 |             f.render_widget(block, f.size());
[INFO] [stdout]     |                                      ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ratatui::Frame::<'_>::size`: use .area() as it's the more correct name
[INFO] [stdout]    --> src/headless_backend.rs:247:42
[INFO] [stdout]     |
[INFO] [stdout] 247 |             f.render_widget(paragraph, f.size());
[INFO] [stdout]     |                                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ratatui::Frame::<'_>::size`: use .area() as it's the more correct name
[INFO] [stdout]    --> src/headless_backend.rs:263:26
[INFO] [stdout]     |
[INFO] [stdout] 263 |                 .split(f.size());
[INFO] [stdout]     |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ratatui::Frame::<'_>::size`: use .area() as it's the more correct name
[INFO] [stdout]    --> src/headless_backend.rs:284:42
[INFO] [stdout]     |
[INFO] [stdout] 284 |             f.render_widget(paragraph, f.size());
[INFO] [stdout]     |                                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ratatui::Frame::<'_>::size`: use .area() as it's the more correct name
[INFO] [stdout]    --> src/headless_backend.rs:227:38
[INFO] [stdout]     |
[INFO] [stdout] 227 |             f.render_widget(block, f.size());
[INFO] [stdout]     |                                      ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ratatui::Frame::<'_>::size`: use .area() as it's the more correct name
[INFO] [stdout]    --> src/headless_backend.rs:247:42
[INFO] [stdout]     |
[INFO] [stdout] 247 |             f.render_widget(paragraph, f.size());
[INFO] [stdout]     |                                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ratatui::Frame::<'_>::size`: use .area() as it's the more correct name
[INFO] [stdout]    --> src/headless_backend.rs:263:26
[INFO] [stdout]     |
[INFO] [stdout] 263 |                 .split(f.size());
[INFO] [stdout]     |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ratatui::Frame::<'_>::size`: use .area() as it's the more correct name
[INFO] [stdout]    --> src/headless_backend.rs:284:42
[INFO] [stdout]     |
[INFO] [stdout] 284 |             f.render_widget(paragraph, f.size());
[INFO] [stdout]     |                                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cancellation_token_for_callback`
[INFO] [stdout]    --> src/async_task.rs:333:13
[INFO] [stdout]     |
[INFO] [stdout] 333 |         let cancellation_token_for_callback = cancellation_token.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cancellation_token_for_callback`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Modified` is never constructed
[INFO] [stdout]   --> src/app.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub enum DiffLineType {
[INFO] [stdout]    |          ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 42 |     Modified,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DiffLineType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `current_blame` is never read
[INFO] [stdout]   --> src/app.rs:57:9
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub struct InspectorState {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 56 |     pub current_content: Vec<String>,
[INFO] [stdout] 57 |     pub current_blame: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `InspectorState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/app.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout]  94 | impl App {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn navigate_tree_up(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn navigate_tree_down(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub fn expand_selected_node(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn collapse_selected_node(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn toggle_selected_node(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn get_selected_file_path(&self) -> Option<PathBuf> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     pub fn get_navigator_search_query(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub fn is_navigator_searching(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     pub fn load_inspector_content(&mut self) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn set_selected_commit(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 282 |     pub fn load_commit_history_for_selected_file(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `LoadCommitHistory` is never constructed
[INFO] [stdout]  --> src/async_task.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub enum Task {
[INFO] [stdout]   |          ---- variant in this enum
[INFO] [stdout] 7 |     LoadFileTree,
[INFO] [stdout] 8 |     LoadCommitHistory {
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Task` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_string` is never used
[INFO] [stdout]    --> src/command.rs:122:12
[INFO] [stdout]     |
[INFO] [stdout]  46 | impl Command {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub fn to_string(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_blame_at_commit` is never used
[INFO] [stdout]    --> src/git_utils.rs:423:8
[INFO] [stdout]     |
[INFO] [stdout] 423 | pub fn get_blame_at_commit(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_file_content_at_head` is never used
[INFO] [stdout]    --> src/git_utils.rs:467:8
[INFO] [stdout]     |
[INFO] [stdout] 467 | pub fn get_file_content_at_head(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_next_change_for_line` is never used
[INFO] [stdout]    --> src/git_utils.rs:530:8
[INFO] [stdout]     |
[INFO] [stdout] 530 | pub fn find_next_change_for_line(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_buffer`, `contains_text`, `get_cursor`, and `resize` are never used
[INFO] [stdout]   --> src/headless_backend.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl HeadlessBackend {
[INFO] [stdout]    | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn get_buffer(&self) -> &Buffer {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn contains_text(&self, text: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 71 |     pub fn get_cursor(&self) -> (Option<(u16, u16)>, bool) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn resize(&mut self, width: u16, height: u16) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `reverse_map_line`, `find_nearest_mapped_line`, and `find_nearest_mapped_line_with_content_fallback` are never used
[INFO] [stdout]    --> src/line_mapping.rs:54:12
[INFO] [stdout]     |
[INFO] [stdout]  24 | impl LineMapping {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  54 |     pub fn reverse_map_line(&self, new_line: usize) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  59 |     pub fn find_nearest_mapped_line(&self, old_line: usize, search_radius: usize) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn find_nearest_mapped_line_with_content_fallback(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Git` is never constructed
[INFO] [stdout]    --> src/line_mapping.rs:306:5
[INFO] [stdout]     |
[INFO] [stdout] 304 | pub enum LineMappingError {
[INFO] [stdout]     |          ---------------- variant in this enum
[INFO] [stdout] 305 |     #[error("Git error: {0}")]
[INFO] [stdout] 306 |     Git(String),
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LineMappingError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `SelectFile` is never constructed
[INFO] [stdout]   --> src/navigator.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum NavigatorEvent {
[INFO] [stdout]    |          -------------- variant in this enum
[INFO] [stdout] 13 |     SelectFile(PathBuf),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NavigatorEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `scroll_offset` is never read
[INFO] [stdout]   --> src/navigator.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct NavigatorViewModel {
[INFO] [stdout]    |            ------------------ field in this struct
[INFO] [stdout] 41 |     pub items: Vec<VisibleItem>,
[INFO] [stdout] 42 |     pub scroll_offset: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NavigatorViewModel` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_view_model_dirty` is never used
[INFO] [stdout]    --> src/navigator.rs:354:12
[INFO] [stdout]     |
[INFO] [stdout]  68 | impl NavigatorState {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 354 |     pub fn is_view_model_dirty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `save_to_file` is never used
[INFO] [stdout]    --> src/test_config.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout] 102 | impl TestConfig {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn save_to_file(&self, path: &str) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/test_runner.rs:607:12
[INFO] [stdout]     |
[INFO] [stdout] 606 | impl TestRunner {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] 607 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `search_text` and `text_default` are never read
[INFO] [stdout]   --> src/theme.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct Theme {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub search_text: Color,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub text_default: Color,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Theme` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/tree.rs:63:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl TreeNode {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  63 |     pub fn remove_child(&mut self, path: &Path) -> Option<TreeNode> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  72 |     pub fn find_child(&self, path: &Path) -> Option<&TreeNode> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  77 |     pub fn find_child_mut(&mut self, path: &Path) -> Option<&mut TreeNode> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub fn collapse(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn toggle_expansion(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn has_children(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub fn depth(&self) -> usize {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tree.rs:333:12
[INFO] [stdout]     |
[INFO] [stdout] 148 | impl FileTree {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 333 |     pub fn set_git_status(&mut self, status_map: HashMap<PathBuf, char>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 339 |     fn apply_git_status_to_tree(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 347 |     fn apply_git_status_to_node_static(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 371 |     pub fn find_node_mut(&mut self, path: &Path) -> Option<&mut TreeNode> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 396 |     fn find_node_recursive_mut_static<'a>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 414 |     pub fn expand_node(&mut self, path: &Path) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 425 |     pub fn collapse_node(&mut self, path: &Path) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 436 |     pub fn toggle_node(&mut self, path: &Path) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 447 |     pub fn get_visible_nodes(&self) -> Vec<&TreeNode> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 456 |     pub fn get_visible_nodes_with_depth(&self) -> Vec<(&TreeNode, usize)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 465 |     fn collect_visible_nodes<'a>(&self, node: &'a TreeNode, visible: &mut Vec<&'a TreeNode>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 476 |     fn collect_visible_nodes_with_depth<'a>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 492 |     pub fn get_stats(&self) -> TreeStats {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 501 |     fn collect_stats(&self, node: &TreeNode, stats: &mut TreeStats) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TreeStats` is never constructed
[INFO] [stdout]    --> src/tree.rs:526:12
[INFO] [stdout]     |
[INFO] [stdout] 526 | pub struct TreeStats {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cancellation_token_for_callback`
[INFO] [stdout]    --> src/async_task.rs:333:13
[INFO] [stdout]     |
[INFO] [stdout] 333 |         let cancellation_token_for_callback = cancellation_token.clone();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cancellation_token_for_callback`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/headless_backend.rs:222:13
[INFO] [stdout]     |
[INFO] [stdout] 222 |         let mut backend = HeadlessBackend::new(20, 5);
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/headless_backend.rs:242:13
[INFO] [stdout]     |
[INFO] [stdout] 242 |         let mut backend = HeadlessBackend::new(30, 10);
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/headless_backend.rs:256:13
[INFO] [stdout]     |
[INFO] [stdout] 256 |         let mut backend = HeadlessBackend::new(60, 20);
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/headless_backend.rs:279:13
[INFO] [stdout]     |
[INFO] [stdout] 279 |         let mut backend = HeadlessBackend::new(10, 3);
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/headless_backend.rs:222:13
[INFO] [stdout]     |
[INFO] [stdout] 222 |         let mut backend = HeadlessBackend::new(20, 5);
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/headless_backend.rs:242:13
[INFO] [stdout]     |
[INFO] [stdout] 242 |         let mut backend = HeadlessBackend::new(30, 10);
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/headless_backend.rs:256:13
[INFO] [stdout]     |
[INFO] [stdout] 256 |         let mut backend = HeadlessBackend::new(60, 20);
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/headless_backend.rs:279:13
[INFO] [stdout]     |
[INFO] [stdout] 279 |         let mut backend = HeadlessBackend::new(10, 3);
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_test_commit_info` is never used
[INFO] [stdout]    --> src/async_task.rs:526:8
[INFO] [stdout]     |
[INFO] [stdout] 526 |     fn create_test_commit_info(hash: &str, subject: &str) -> CommitInfo {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Modified` is never constructed
[INFO] [stdout]   --> src/app.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub enum DiffLineType {
[INFO] [stdout]    |          ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 42 |     Modified,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DiffLineType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_navigator_search_query`, `is_navigator_searching`, `load_inspector_content`, `set_selected_commit`, and `load_commit_history_for_selected_file` are never used
[INFO] [stdout]    --> src/app.rs:173:12
[INFO] [stdout]     |
[INFO] [stdout]  94 | impl App {
[INFO] [stdout]     | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 173 |     pub fn get_navigator_search_query(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub fn is_navigator_searching(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     pub fn load_inspector_content(&mut self) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     pub fn set_selected_commit(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 282 |     pub fn load_commit_history_for_selected_file(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_test_commit_info` is never used
[INFO] [stdout]    --> src/async_task.rs:526:8
[INFO] [stdout]     |
[INFO] [stdout] 526 |     fn create_test_commit_info(hash: &str, subject: &str) -> CommitInfo {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_blame_at_commit` is never used
[INFO] [stdout]    --> src/git_utils.rs:423:8
[INFO] [stdout]     |
[INFO] [stdout] 423 | pub fn get_blame_at_commit(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_file_content_at_head` is never used
[INFO] [stdout]    --> src/git_utils.rs:467:8
[INFO] [stdout]     |
[INFO] [stdout] 467 | pub fn get_file_content_at_head(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_next_change_for_line` is never used
[INFO] [stdout]    --> src/git_utils.rs:530:8
[INFO] [stdout]     |
[INFO] [stdout] 530 | pub fn find_next_change_for_line(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Git` is never constructed
[INFO] [stdout]    --> src/line_mapping.rs:306:5
[INFO] [stdout]     |
[INFO] [stdout] 304 | pub enum LineMappingError {
[INFO] [stdout]     |          ---------------- variant in this enum
[INFO] [stdout] 305 |     #[error("Git error: {0}")]
[INFO] [stdout] 306 |     Git(String),
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LineMappingError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `scroll_offset` is never read
[INFO] [stdout]   --> src/navigator.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct NavigatorViewModel {
[INFO] [stdout]    |            ------------------ field in this struct
[INFO] [stdout] 41 |     pub items: Vec<VisibleItem>,
[INFO] [stdout] 42 |     pub scroll_offset: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NavigatorViewModel` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_view_model_dirty` is never used
[INFO] [stdout]    --> src/navigator.rs:354:12
[INFO] [stdout]     |
[INFO] [stdout]  68 | impl NavigatorState {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 354 |     pub fn is_view_model_dirty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `save_to_file` is never used
[INFO] [stdout]    --> src/test_config.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout] 102 | impl TestConfig {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn save_to_file(&self, path: &str) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `search_text` and `text_default` are never read
[INFO] [stdout]   --> src/theme.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub struct Theme {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub search_text: Color,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub text_default: Color,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Theme` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `find_child_mut` and `has_children` are never used
[INFO] [stdout]    --> src/tree.rs:77:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl TreeNode {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  77 |     pub fn find_child_mut(&mut self, path: &Path) -> Option<&mut TreeNode> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub fn has_children(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `toggle_node`, `get_visible_nodes_with_depth`, and `collect_visible_nodes_with_depth` are never used
[INFO] [stdout]    --> src/tree.rs:436:12
[INFO] [stdout]     |
[INFO] [stdout] 148 | impl FileTree {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 436 |     pub fn toggle_node(&mut self, path: &Path) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 456 |     pub fn get_visible_nodes_with_depth(&self) -> Vec<(&TreeNode, usize)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 476 |     fn collect_visible_nodes_with_depth<'a>(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `git-lineage` (lib test); 12 warnings emitted
[INFO] [stderr] 
[INFO] [stderr] Caused by:
[INFO] [stderr]   process didn't exit successfully: `/opt/rustwide/rustup-home/toolchains/b8e88e5ddf5521a9f43ee3f62a702388c713e4bb/bin/rustc --crate-name git_lineage --edition=2021 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --emit=dep-info,link -C embed-bitcode=no -C debuginfo=2 --test --check-cfg 'cfg(docsrs,test)' --check-cfg 'cfg(feature, values())' -C metadata=c1b92d60d0ad4c72 -C extra-filename=-6d41079928fe234f --out-dir /opt/rustwide/target/debug/deps -L dependency=/opt/rustwide/target/debug/deps --extern assert_matches=/opt/rustwide/target/debug/deps/libassert_matches-725c09f0490d061a.rlib --extern chrono=/opt/rustwide/target/debug/deps/libchrono-7235654e79506326.rlib --extern clap=/opt/rustwide/target/debug/deps/libclap-95928bb8125608b8.rlib --extern crossterm=/opt/rustwide/target/debug/deps/libcrossterm-54977750a2025417.rlib --extern env_logger=/opt/rustwide/target/debug/deps/libenv_logger-10be8528a4de9e4f.rlib --extern fake=/opt/rustwide/target/debug/deps/libfake-a94ff455adee28e9.rlib --extern fuzzy_matcher=/opt/rustwide/target/debug/deps/libfuzzy_matcher-fc0cbaf00981bb5d.rlib --extern gix=/opt/rustwide/target/debug/deps/libgix-c600e3392df1bc21.rlib --extern ignore=/opt/rustwide/target/debug/deps/libignore-d35914be08f095f7.rlib --extern lazy_static=/opt/rustwide/target/debug/deps/liblazy_static-afffdbb119bd9ac1.rlib --extern log=/opt/rustwide/target/debug/deps/liblog-5d55931747baec80.rlib --extern maplit=/opt/rustwide/target/debug/deps/libmaplit-67f7a9a4844df5f7.rlib --extern mockall=/opt/rustwide/target/debug/deps/libmockall-123515e75ca25a33.rlib --extern proptest=/opt/rustwide/target/debug/deps/libproptest-435efdb54a460765.rlib --extern ratatui=/opt/rustwide/target/debug/deps/libratatui-12c0e8b2716b66a7.rlib --extern serde=/opt/rustwide/target/debug/deps/libserde-2f55159aab10a5c8.rlib --extern serde_json=/opt/rustwide/target/debug/deps/libserde_json-25f2d3ca3fc4f8d2.rlib --extern serial_test=/opt/rustwide/target/debug/deps/libserial_test-e47fa8ffb34c41d9.rlib --extern similar=/opt/rustwide/target/debug/deps/libsimilar-c5d306bf33745d35.rlib --extern syntect=/opt/rustwide/target/debug/deps/libsyntect-7a3a10f3d275a5d5.rlib --extern tempfile=/opt/rustwide/target/debug/deps/libtempfile-daa5f61f95785a7f.rlib --extern thiserror=/opt/rustwide/target/debug/deps/libthiserror-1282ff73cf9cfe28.rlib --extern tokio=/opt/rustwide/target/debug/deps/libtokio-c8b8cb407233b9d7.rlib --extern tokio_test=/opt/rustwide/target/debug/deps/libtokio_test-c534f2869848b652.rlib --extern tokio_util=/opt/rustwide/target/debug/deps/libtokio_util-e19be73816676cda.rlib --extern tui_tree_widget=/opt/rustwide/target/debug/deps/libtui_tree_widget-87b3aef95aa28a87.rlib --cap-lints=forbid -L native=/opt/rustwide/target/debug/build/onig_sys-8b5589eb77f50f88/out` (signal: 9, SIGKILL: kill)
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] running `Command { std: "docker" "inspect" "9f868afa0d757e7d95b57cbcbac238183f2168a52e181d88af47f59dff370b69", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9f868afa0d757e7d95b57cbcbac238183f2168a52e181d88af47f59dff370b69", kill_on_drop: false }`
[INFO] [stdout] 9f868afa0d757e7d95b57cbcbac238183f2168a52e181d88af47f59dff370b69
